﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace SpaceGame
{
    /// <summary>
    /// Basic contract for an entity.
    /// </summary>
    /// <remarks>Having an interface is useful for mocking also.</remarks>
    public interface IEntity
    {
        void Update(float elapsedTime);

        void Draw(float elapsedTime, LineBatch lineBatch);

        bool Touch(IEntity target);

        bool Damage(IEntity source, float damageAmount);

        void Die(IEntity source);

        void Spawn(bool findSpawnPoint);

        bool Dead
        { get;
        }

        World World
        {
            get;
        }

        Vector2 Position
        {
            get; set;
        }

        Vector2 Velocity
        {
            get; set;
        }

        float Rotation
        {
            get; set;
        }

        float Radius
        {
            get;
        }


        float Mass
        {
            get;
        }

        bool Collidable
        { get;
        }

        bool CollidedThisFrame
        {
            get; set;
        }

        Color Color
        { 
            get;
        }

       
    }
}
